系统漏洞端口扫描常用方式有哪些
系统漏洞端口扫描常用方式有以下这些:
TCP connect扫描:是最基本的TCP扫描方式。connect()是一种系统调用,由操作系统提供,用来打开一个连接。如果目标端口有程序监听,connect()就会成功返回,否则这个端口是不可达的。优点就是编程简单,是需要一个API connect(),比较可靠,因为TCP是可靠协议,当丢包的时候,会重传SYN帧。缺点是因为TCP的可靠性,所以当端口不存在的时候,源主机会不断尝试发SYN帧企图得到ack的应答,多次尝试后才会放弃,因此造成了扫描的时间较长。并且,connect的扫描方式可能较容易被目标主机发现。
TCP SYN扫描:原先是黑客不建立完全连接,用来判断通信端口状态的一种手段,现在被用于端口扫描。SYN扫描也称半开放扫描。在SYN扫描中,恶意客户企图跟服务器在每个可能的端口建立TCP/IP连接。这通过向服务器每个端口发送一个SYN数据包,装作发起一个三方握手来实现。如果服务器从特定端口返回SYN/ACK(同步应答)数据包,则意味着端口是开放的。然后,恶意客户程序发送一个RST数据包。结果,服务器以为存在一个通信错误,以为客户端决定不建立连接。开放的端口因而保持开放,易于受到攻击。如果服务器从特定端口返回一个RST数据包,这表示端口是关闭的,不能攻击。优点就是速度快如果不被防火墙过滤的话,基本都能收到应答包,缺点就是扫描行为容易被发现,是在ip层的,因此不可靠,可能会丢包。
TCP FIN扫描:也被称为秘密扫描,在TCP报文结构中,FIN段负责表示发送端已经没有数据要传输了,希望释放连接。优点就是隐蔽性好、速度快,缺点就是只能用于Linux系统,windows系统下无效,还有就是不可靠,当收不到应答包时,不确定是端口在监听,还是丢包了。
UDP recvfrom扫描:给一个端口发送UDP报文,如果端口是开放的,则没有响应,如果端口是关闭的,对方会回复一个ICMP端口不可达报文。这个优点就是linux和windows都能使用,缺点也很明显是不可靠的,因为返回的是错误信息,所以速度相对于TCP的FIN,SYN扫描要慢一些,如果发送的UDP包太快了,回应的ICMP包会出现大量丢失的现象。